/*
 * ================================================================================变量定义区
 */
var showCount = 10; //定义每页显示条数
var currentPage = 1;//全局变量，当前页
var survey_id = parent.survey_id;//接收父页面传递的问卷编号
var groupId;//组号

/*
 * ================================================================================页面初始化函数
 */
$(function()
{
  // 展示用户所拥有的组
  showGroupList();
  
  //回车键绑定事件 
  document.onkeydown = function(event) 
  {
    var e = event || window.event || arguments.callee.caller.arguments[0];

    if (e && e.keyCode == 13) 
    { 
      //获取按参数查询用户列表
      queryDate(1);
    }
  };
});

/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 展示用户组列表
 * @param createUser  用户组的创建人
 */
function showGroupList()
{
  
  //获取当前登录用户的用户名
  var singleId = $("#create_user").val();
  
  $.ajax(
  {
    type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/surveyRelease/selectGroupList.do' ,
        dataType:"json",
        data:
        {
          "createUser"                   :singleId,
          "surveyId"                     :survey_id
        },
        cache:false,
        
        success:function(data,textStatus)
        {
          var html = "";    
          if(data != null) {
            //解析data, 组装成html
            
            for( var i = 0; i < data.length; i ++)
            {
              
              
              var flag = data[i].checkStatus;
              
              
              html += '<div data-entitySize="' + data.length + '" onclick="chooseRowid(this);"'
                   + 'class="chooseGroup" id="' + data[i].group_id +'" data-groupDesc="' + switcHtml(data[i].group_desc) + '">'
                   + '<input type = "checkbox" id = "checkbox" name="' +data[i].group_id+ '" style="align:left; width:15px;" data-flag ="'+ flag + '" />'
                   + '<span style="text-align: left; width: 180px;" title=' + switcHtml(data[i].group_name) + '>' + switcHtml(data[i].group_name) + '</span>'
                   + '</div>';
              
            }
          } 
          else
          {
            html = '<div class="chooseGroup"><span style="text-align: left; width: 50px;">No groups.</span></div>';
          }
          
          $('#groupDiv').html(html);
          
          
          $("input[type='checkbox']").each(function() {
            if($(this).data("flag") === "H") {
              this.indeterminate = true;
            }
            else if($(this).data("flag") === "A") {
              this.checked = true;
            }
          });
          
          
          if( $('#groupDiv').children("div").length > 0 )
          {
              $('#groupDiv').children("div")[0].click();
          }
        },
        
    error:function(e)
    {
      openAlert("加载数据错误！"); return;
    }
  });
}

/**
 * 选中组，展示组下所有的用户
 * @param groupId
 */
function chooseRowid(row) 
{
  var rowid = row.id;
  if (groupId) 
  {
    $("#" + groupId).removeClass("list_choosedRow");
  }

  if (rowid != groupId) 
  {
    groupId = rowid;
    $("#" + groupId).addClass("list_choosedRow");
  } 
  else 
  {
    $("#" + groupId).addClass("list_choosedRow");
  }

  //初始化列表，取第一页数据
  getDataList(currentPage);
}

/**
 * 获取列表数据
 * @param currentPage 请求的页码
 * @param groupId 用户组的编号
 * @param username 用户的姓名
 * @param dept_name 部门编号
 * @param cn_name 权限名称
 * @param survey_id 问卷的编号
 */
function getDataList(pageIndex)
{
  //获取查询参数
  var username = $("#username").val().trim().toUpperCase();
  var dept_name = $("#dept_name").val().trim().toUpperCase();
  var cn_name = $("#cn_name").val().trim().toUpperCase();
  
  $.ajax(
  {
    type: 'POST',
        url: BASE_PATH +'/groupManagement/queryUsersInGroup.do',
        dataType:"json",
        data:
        {
          "showCount"                  :showCount,
          "currentPage"                :pageIndex,
          "groupId"                  :groupId,
          "username"                     :username,
          "dept_name"                    :dept_name,
          "cn_name"                    :cn_name,
          "survey_id"                  :survey_id,
          "query_condition_field_list"   :"groupId,username,dept_name,cn_name,survey_id"
        },
        cache:false,
        
        success:function(data,textStatus)
        {
          var html = "";          
          var pageData = data;
          var totalResult = pageData.queryParam.totalResult;
          
          if(pageData.queryResult != null)
          {
            //解析data, 组装成html
            $.each(pageData.queryResult,function(i,n)
            {
              html += '<tr  name = ' + groupId + '  id="tr_index_' + i + '">'
                   + '<td style="text-align:center;" title=' + n.is_join + '>' + n.is_join + '</td>'
                   + '<td title=' + switcHtml(n.username) + '>' + switcHtml(n.username) + '</td>'
                   + '<td title=' + switcHtml(check(n.cn_name)) + '>' + switcHtml(check(n.cn_name)) + '</td>'
                   + '<td title=' + switcHtml(check(n.dept_name)) + '>' + switcHtml(check(n.dept_name)) + '</td>'
                   + '<td style="width: 1px;"></td>'
                   + '</tr>';
            });   
          } 
          else
          {
            html = '<tr><td colspan="2">No items.</td></tr>';
          }
          
          $('#tBodyList').html(html);
          currentPage = pageIndex;
          
        if(totalResult == 0)
        {
          $('#tBodyList').html('<tr><td style="text-align:center;">No items.</td></tr>');
          
          // 没有记录的时候，隐藏分页插件
          $("#pagination").hide();
        } 
        else 
        {
          // 创建分页
          $("#pagination").show();
          $("#pagination").pagination(totalResult, 
          {
            num_edge_entries             :1, //边缘页数
            num_display_entries          :3, //主体页数
            current_page                 :currentPage,
            callback                     :getDataList,
            items_per_page               :showCount //每页显示1项
          });
        };
        
        // 清空之前的记录信息
      chooseIds = new Array();
        },
        
    error:function(e)
    {
       openAlert("加载数据错误！"); 
       return;
    }
  });
} 

/**
 * 查询按钮事件
 * @param indexPage
 */
function queryDate(indexPage) 
{
  //清除之前所有的选中记录
  chooseIds = new Array();
  
  getDataList(indexPage);
}

/**
 * 添加到已选择用户列表
 * @param survey_id       问卷的编号
 * @param groupForInsert  需要插入的组名
 * @param groupForDelete  需要删除的组名
 * @param create_user     当前登录的用户名
 */
function updateUser() 
{
  var checks  = new Array();
  var unchecks  = new Array();
  
  //遍历所有组 查出状态改变的组
  $("input[type='checkbox']").each(function() {
    if($(this).data("flag") === "H" && this.indeterminate == false ){
      if(this.checked == true){
        checks.push($(this).attr('name'));   
      }else{
        unchecks.push($(this).attr('name'));
      }
      
    }else if($(this).data("flag") === "N"&& this.checked == true) {
       checks.push($(this).attr('name'));      
    }
    else if($(this).data("flag") === "A" && this.checked == false) {
      unchecks.push($(this).attr('name'));
    }
  }); 
  
  var groupForDelete = unchecks.join(',');
  
  var groupForInsert = checks.join(',');
  
  //获取当前登录用户的姓名，即为创建人
  var create_user = $("#create_user").val();
  
  	  if(checks.length < 1 && unchecks.length < 1 )
	  {
	    openAlert('请更改一条记录');
	    return false;
      }

  //新增
  $.ajax(
  {
    type: 'POST',
        url: BASE_PATH +'/survey/surveyManagement/surveyRelease/updateGroupUserToSurveyUserList.do',
        dataType:"json",
        data:
        {
          "survey_id"                    :survey_id,
          "groupForInsert"               :groupForInsert,
          "groupForDelete"               :groupForDelete,
          "create_user"                  :create_user
        },
        
    success : function(data) 
    {
    	openAlert('此问卷中增加'+data[0] +'个用户，删除'+data[1] +'个用户。' );
        
        //刷新当前页
        getDataList(currentPage);
        showGroupList();
    },
    
    error:function(e)
    {
      openAlert('操作失败！错误信息：<div>'+e.responseText+"</div>");
    }
  });
}

/**
 * 判断是否为空
 * @param name
 * @returns
 */
function check(name)
{
  if(name == null)
  {
    return name = '';
  } 
  else
  {
    return name;
  }
}